package com.ml.nio.channel;

import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * FileChannel案例2-从本地文件读数据到控制台。
 * 实例要求:
 * 1) 使用前面学习后的ByteBuffer(缓冲) 和 FileChannel(通道)， 将 file01.txt 中的数据读 入到程序，并显示在控制台屏幕
 * 2) 假定文件已经存在
 *
 * @author xr-8
 * @date 2022-01-08
 * @time 22:53
 */
public class FileChannel02 {

    public static void main(String[] args) throws IOException {
        //创建文件输入流和FileChannel
        FileInputStream fileInputStream = new FileInputStream("G://file01.txt");
        FileChannel fileChannel = fileInputStream.getChannel();
        //创建ByteBuffer
        ByteBuffer byteBuffer = ByteBuffer.allocate((int) fileChannel.size());
        //将数据读到ByteBuffer中
        fileChannel.read(byteBuffer);
        //打印出来
        byte[] context = byteBuffer.array();
        System.out.println(new String(context));
        //关闭流
        fileInputStream.close();
    }

}
